package servidor;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Biblioteca extends Remote {
	
	
	/**
	 * Consulta quais ISBN estao disponiveis na biblioteca
	 * @return	string com lista de ISBNs disponiveis
	 * @throws RemoteException
	 */
	public String listaTodosISBN() throws RemoteException;
	
	/**
	 * Informa a descrição de um livro, dado seu ISBN
	 * @param isbn	codigo ISBN do livro
	 * @return	string com descricao do livro
	 * @throws RemoteException
	 */
	public String descricaoDoLivro(String isbn) throws RemoteException;
	
	/**
	 * Informa todas as informacoes de um livro, dado seu ISBN
	 * @param isbn	codigo ISBN do livro
	 * @return	string com todas as informacoes do livro
	 * @throws RemoteException
	 */
	public String informacaoDoLivro(String isbn) throws RemoteException;
	
	/**
	 * Informa todas as informacoes de todos os livros
	 * @return	string com todas as informacoes 
	 * @throws RemoteException
	 */
	public String listaTodasInformacoes() throws RemoteException;
	
	/**
	 * Comando para atualizar a quantidade de livros em estoque para um dado ISBN
	 * @param isbn	codigo ISBN do livro
	 * @param quantidade nova quantidade de itens em estoque
	 * @param senha		senha para validar atualizacao
	 * @return	string informando se atualizacao ocorreu com sucesso, ou descricao de erro
	 * @throws RemoteException
	 */
	public String alteraEstoque(String isbn, int quantidade, String senha) throws RemoteException;
	
	/**
	 * Consulta quantidades de livro em estoque, dado um ISBN
	 * @param isbn	codigo ISBN do livro
	 * @return	string informando a quantidade de itens em estoque
	 * @throws RemoteException
	 */
	public String obterEstoque(String isbn) throws RemoteException;
	
	
}
